Many typical image processing applications require large amounts of memory. For example, scanning a printed page, printing an electronic document, or copying a photograph require millions of pixels (picture elements) to be read into a memory, processed, and output to a disk or other output medium. While the cost of memory and disk space has increased many times over the past years, and computer system bandwidth has increased, there is still a drive to reduce the performance (speed) cost and dollar cost of storing and moving around such large amounts of memory in a system. As an example, a 8.5×11 (letter) page size image represented as a 4 color image for rinting (Cyan, Magenta, Yellow, Black), at typical resolutions (e.g., 600 dpi) can consume 4 colors*8.5*11*600 dpi*600 dpi*8 bits/byte=134 megabytes. Thus, there is a high motivation to try to reduce the amount of memory needed to represent the same (or nearly the same) information in a smaller amount of data.
High quality image representations usually encode many values for each pixel that is provided. The pixel bit depth, or number of bits that are represented at each pixel can range from 8 to 12 bits per pixel in many applications, with 8 bits per pixel (bits per pixel is often abbreviated by ‘bpp’) being the most widely used bit depth. It is generally accepted that a larger number of bits per pixel can represent a higher quality image. This can be true within limits, all other image quality aspects being equal. Reducing the bit depth of an image, while simultaneously enabling the higher bit depth to be re-generated without visible loss to image quality is the subject of this idea.
Copying, scanning and printing operations process an image in stages. There is generally a preprocessing stage, a storage stage, and an outputting stage. Depending on the architecture of the system, the preprocessing stage can include bit-depth reduction, and compression. Bit depth reduction can be accomplished using a technique called halftoning, which is well known in the art, where each pixel is compared to a threshold that is stored in a memory, and, in the simplest case, will assign a 1 if the threshold is greater than the pixel value, and will assign a value of 0 if the threshold is less than the pixel value. This is called binary halftoning. When the output of the halftoning process is a pixel of more than 2 values (1 or 0) but still less than the original number of values, the process is called multi-bit halftoning. Binary halftoning has the advantage of guaranteeing a 8:1 compression ratio over 8 bpp image data, because it replaces every 8 bpp pixel with a 1 bpp pixel. Binary halftoning can, given the proper circumstances, generate very high quality representations of the original input image, but also suffers from problems. Most significantly, if 8 bpp data is desired ‘downstream’ of the preprocessing stage, e.g. if an output (marking) device requires 8 bpp input, recreating high quality 8 bpp data from the halftoned 1 bpp data is very difficult, especially for a printing process.
More sophisticated machines offer a “store and retrieve” option, whereby stored image data may be later accessed and retrieved for future and different usage as originally intended. Store and retrieve options may be used to retrieve and print image data that was created on a different device at a much different time. Therefore, some image quality correction may have to be performed on the data; some of which is very desirable to do at high bit depth (e.g. 8 bpp is necessary if one wants to apply tone reproduction to the image to calibrate out time or device differences).
Traditionally, binary and contone (8 bpp) raster image processing (RIP) output are used for printing. Low cost printers typically use binary RIP output. Binary Ripping has advantages over other techniques when it is used with sufficient resolution. It can provide a simple 8× reduction in the data volume, and create high quality synthetic object edge rendering at the given resolution. At sufficiently high resolutions it also enables very high frequency halftone screens. In addition, it is simple and the most popular method for printing on office devices; thus exhibits good support from RIP software vendors.
However, there are times when aspects of a marking engine require a grayscale (contone) interface. For example, by providing the marking system (IME) with grayscale data allows the marking system to compensate for spatial non-uniformities in the cross process direction. In addition, providing a grayscale interface allows for built in halftone screens, which may be advantageously tightly coupled with the internals of the IOT.
Copying and printing using grayscale image path is more expensive however, because of the volume of data when compared to binary equivalents. Ripping requires additional system memory, and the reduction in RIP processing speed associated with the handling of additional volumes of data.
FIG. 1 illustrates the printing rates and memory requirements for 1, 2, 4, and 8 bpp halftoning, respectively for a printing process. It can be clearly seen that higher bit depth RIPping is slower than lower bit depth RIPping. In general, the increased bandwidth required to write the frames (or bands) slows the process. When subsequently compressing the images using a data compression algorithm, the compression time is generally proportional to the image size (i.e., larger images take longer to compress).
Binary halftoning as part of a copy process (e.g., Binary Data Extended to Contone (BDEC)) is known and uses significantly less memory than copying using 8 bpp. See, for example U.S. Patent Application Publication No. 2006/0257045, herein incorporated by reference. However, it requires the use of rendering tags, creates undesirable artifacts in highlight regions after reconstruction, and is not easily extended to enable the ‘store and retrieve’ services.
Thus, the inventors have recognized that there is a need to solve the attendant problems of high bandwidth, computational and memory requirements of grayscale processing.